The Complex class, as it is referred to in C++, would define all of the “methods or tasks that one would like to perform on that object”. Examples: add, subtract, multiply, divide, input, output, and even trig functions like sin (complex), cos (complex), etc., would be defined within the Complex.cc module.
Note that adding new data types now localises the changes to a select set of source and definitions. On the other hand, deciding that a set of classes all need a new “method” (e.g., additive inverse), would mean that all of the classes needing this new method now must be modified.
Object-oriented design works best when the verbs (procedures) describing a problem are well understood, but the types of nouns (classes) are not easily categorised. This is most often the case when the problem size is large, in which case the number of unique nouns greatly exceeds the number of verbs. For “small” problems, where there are few types of nouns, procedurally-oriented design may actually be superior to object-oriented design.